precompiled JSX transform
#Deno #Preact #Fresh #JSX #TypeScript #hono/jsx #JSX_transform
precompiled JSX transformとは
Denoでは独自にcompilerOptions.jsxでprecompileというオプションをサポートしています。(v1.38)
これはSSR向けに最適化されたオプションで、DenoがJSXファイルをトランスパイルする際に、あらかじめJSXノードの構築を最適化することで、オブジェクトの割り当てなどを減らし、パフォーマンスの改善を図ります
主にFreshでの活用を目的とした導入された機能だと思われます
現在ではPreactでこのprecompiled JSX transformがサポートされています。(preact@10.19.0)
フレームワーク側で実装されれば、Preact以外でも利用可能なようです。
Honoのhono/jsxでもサポートが入ったようです。(v3.10.0)
code:deno.json
{
"compilerOptions": {
"jsx": "precompile",
"jsxImportSource": "preact"
},
"imports": {
"preact": "https://esm.sh/preact@10.19.0",
"preact/": "https://esm.sh/preact@10.19.0/"
}
}
設定
compilerOptions.jsxPrecompileSkipElements
Deno v1.43.0で導入された設定
precompiled JSX transformの適用対象外としたいHTML要素を指定することができます
code:deno.json
{
"compilerOptions": {
"jsx": "precompile",
"jsxImportSource": "preact",
"jsxPrecompileSkipElements": "a"
},
"imports": {
"preact": "https://esm.sh/preact@10.19.6",
"preact/": "https://esm.sh/preact@10.19.6/"
}
}
フレームワーク/ライブラリ
Preact
hono/jsx
- Lumeの作者の方が開発しているライブラリ
関連ページ
DenoにおけるTypeScriptの独自拡張について